// Copyright 2025 Moonbeam foundation
// This file is part of Moonbeam.

// Moonbeam is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// Moonbeam is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with Moonbeam.  If not, see <http://www.gnu.org/licenses/>.


//! Autogenerated weights for `pallet_collective`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 48.0.0
//! DATE: 2025-10-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz`
//! WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024

// Executed Command:
// ./frame-omni-bencher
// v1
// benchmark
// pallet
// --runtime=./target/production/wbuild/moonbeam-runtime/moonbeam_runtime.wasm
// --genesis-builder=runtime
// --genesis-builder-preset=development
// --steps=50
// --repeat=20
// --pallet=pallet_collective
// --extrinsic=*
// --wasm-execution=compiled
// --header=./file_header.txt
// --template=./benchmarking/frame-weight-template.hbs
// --output=./runtime/moonbeam/src/weights

#![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)]
#![allow(unused_imports)]

use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
use sp_std::marker::PhantomData;

/// Weights for `pallet_collective`.
pub struct WeightInfo<T>(PhantomData<T>);
impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
	/// Storage: `TreasuryCouncilCollective::Members` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Proposals` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Voting` (r:20 w:20)
	/// Proof: `TreasuryCouncilCollective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Prime` (r:0 w:1)
	/// Proof: `TreasuryCouncilCollective::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// The range of component `m` is `[0, 9]`.
	/// The range of component `n` is `[0, 9]`.
	/// The range of component `p` is `[0, 20]`.
	/// The range of component `m` is `[0, 100]`.
	/// The range of component `n` is `[0, 100]`.
	/// The range of component `p` is `[0, 100]`.
	fn set_members(m: u32, _n: u32, p: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `0 + m * (425 ±0) + p * (206 ±0)`
		//  Estimated: `4150 + m * (266 ±3) + p * (2556 ±1)`
		// Minimum execution time: 8_734_000 picoseconds.
		Weight::from_parts(9_013_000, 4150)
			// Standard Error: 98_522
			.saturating_add(Weight::from_parts(3_159_117, 0).saturating_mul(m.into()))
			// Standard Error: 45_013
			.saturating_add(Weight::from_parts(3_903_981, 0).saturating_mul(p.into()))
			.saturating_add(T::DbWeight::get().reads(2_u64))
			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into())))
			.saturating_add(T::DbWeight::get().writes(2_u64))
			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into())))
			.saturating_add(Weight::from_parts(0, 266).saturating_mul(m.into()))
			.saturating_add(Weight::from_parts(0, 2556).saturating_mul(p.into()))
	}
	/// Storage: `TreasuryCouncilCollective::Members` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0)
	/// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// The range of component `b` is `[2, 1024]`.
	/// The range of component `m` is `[1, 9]`.
	/// The range of component `b` is `[2, 1024]`.
	/// The range of component `m` is `[1, 100]`.
	fn execute(b: u32, m: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `210 + m * (20 ±0)`
		//  Estimated: `1694 + m * (20 ±0)`
		// Minimum execution time: 14_689_000 picoseconds.
		Weight::from_parts(15_076_893, 1694)
			// Standard Error: 23
			.saturating_add(Weight::from_parts(1_448, 0).saturating_mul(b.into()))
			// Standard Error: 2_812
			.saturating_add(Weight::from_parts(30_924, 0).saturating_mul(m.into()))
			.saturating_add(T::DbWeight::get().reads(2_u64))
			.saturating_add(Weight::from_parts(0, 20).saturating_mul(m.into()))
	}
	/// Storage: `TreasuryCouncilCollective::Members` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::ProposalOf` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0)
	/// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// The range of component `b` is `[2, 1024]`.
	/// The range of component `m` is `[1, 9]`.
	/// The range of component `b` is `[2, 1024]`.
	/// The range of component `m` is `[1, 100]`.
	fn propose_execute(b: u32, m: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `210 + m * (20 ±0)`
		//  Estimated: `3674 + m * (20 ±0)`
		// Minimum execution time: 17_237_000 picoseconds.
		Weight::from_parts(17_528_580, 3674)
			// Standard Error: 26
			.saturating_add(Weight::from_parts(1_413, 0).saturating_mul(b.into()))
			// Standard Error: 3_165
			.saturating_add(Weight::from_parts(40_220, 0).saturating_mul(m.into()))
			.saturating_add(T::DbWeight::get().reads(3_u64))
			.saturating_add(Weight::from_parts(0, 20).saturating_mul(m.into()))
	}
	/// Storage: `TreasuryCouncilCollective::Members` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::ProposalOf` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Proposals` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::ProposalCount` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Voting` (r:0 w:1)
	/// Proof: `TreasuryCouncilCollective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// The range of component `b` is `[2, 1024]`.
	/// The range of component `m` is `[2, 9]`.
	/// The range of component `p` is `[1, 20]`.
	/// The range of component `b` is `[2, 1024]`.
	/// The range of component `m` is `[2, 100]`.
	/// The range of component `p` is `[1, 100]`.
	fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `160 + m * (20 ±0) + p * (55 ±0)`
		//  Estimated: `3581 + m * (27 ±0) + p * (54 ±0)`
		// Minimum execution time: 20_260_000 picoseconds.
		Weight::from_parts(20_940_101, 3581)
			// Standard Error: 87
			.saturating_add(Weight::from_parts(3_056, 0).saturating_mul(b.into()))
			// Standard Error: 11_911
			.saturating_add(Weight::from_parts(80_876, 0).saturating_mul(m.into()))
			// Standard Error: 4_569
			.saturating_add(Weight::from_parts(384_653, 0).saturating_mul(p.into()))
			.saturating_add(T::DbWeight::get().reads(4_u64))
			.saturating_add(T::DbWeight::get().writes(4_u64))
			.saturating_add(Weight::from_parts(0, 27).saturating_mul(m.into()))
			.saturating_add(Weight::from_parts(0, 54).saturating_mul(p.into()))
	}
	/// Storage: `TreasuryCouncilCollective::Members` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Voting` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// The range of component `m` is `[5, 9]`.
	/// The range of component `m` is `[5, 100]`.
	fn vote(m: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `734 + m * (40 ±0)`
		//  Estimated: `4199 + m * (40 ±0)`
		// Minimum execution time: 22_064_000 picoseconds.
		Weight::from_parts(22_853_284, 4199)
			// Standard Error: 8_245
			.saturating_add(Weight::from_parts(83_489, 0).saturating_mul(m.into()))
			.saturating_add(T::DbWeight::get().reads(2_u64))
			.saturating_add(T::DbWeight::get().writes(1_u64))
			.saturating_add(Weight::from_parts(0, 40).saturating_mul(m.into()))
	}
	/// Storage: `TreasuryCouncilCollective::Voting` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Members` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Proposals` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::ProposalOf` (r:0 w:1)
	/// Proof: `TreasuryCouncilCollective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// The range of component `m` is `[4, 9]`.
	/// The range of component `p` is `[1, 20]`.
	/// The range of component `m` is `[4, 100]`.
	/// The range of component `p` is `[1, 100]`.
	fn close_early_disapproved(m: u32, p: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `267 + m * (40 ±0) + p * (55 ±0)`
		//  Estimated: `3729 + m * (43 ±0) + p * (55 ±0)`
		// Minimum execution time: 23_960_000 picoseconds.
		Weight::from_parts(25_100_881, 3729)
			// Standard Error: 9_995
			.saturating_add(Weight::from_parts(47_507, 0).saturating_mul(m.into()))
			// Standard Error: 2_835
			.saturating_add(Weight::from_parts(286_468, 0).saturating_mul(p.into()))
			.saturating_add(T::DbWeight::get().reads(3_u64))
			.saturating_add(T::DbWeight::get().writes(3_u64))
			.saturating_add(Weight::from_parts(0, 43).saturating_mul(m.into()))
			.saturating_add(Weight::from_parts(0, 55).saturating_mul(p.into()))
	}
	/// Storage: `TreasuryCouncilCollective::Voting` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Members` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::ProposalOf` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0)
	/// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Proposals` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// The range of component `b` is `[2, 1024]`.
	/// The range of component `m` is `[4, 9]`.
	/// The range of component `p` is `[1, 20]`.
	/// The range of component `b` is `[2, 1024]`.
	/// The range of component `m` is `[4, 100]`.
	/// The range of component `p` is `[1, 100]`.
	fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `254 + b * (1 ±0) + m * (40 ±0) + p * (78 ±0)`
		//  Estimated: `3858 + b * (1 ±0) + m * (29 ±1) + p * (74 ±0)`
		// Minimum execution time: 35_732_000 picoseconds.
		Weight::from_parts(38_164_955, 3858)
			// Standard Error: 104
			.saturating_add(Weight::from_parts(2_614, 0).saturating_mul(b.into()))
			// Standard Error: 5_474
			.saturating_add(Weight::from_parts(502_126, 0).saturating_mul(p.into()))
			.saturating_add(T::DbWeight::get().reads(5_u64))
			.saturating_add(T::DbWeight::get().writes(3_u64))
			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
			.saturating_add(Weight::from_parts(0, 29).saturating_mul(m.into()))
			.saturating_add(Weight::from_parts(0, 74).saturating_mul(p.into()))
	}
	/// Storage: `TreasuryCouncilCollective::Voting` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Members` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Prime` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Proposals` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::ProposalOf` (r:0 w:1)
	/// Proof: `TreasuryCouncilCollective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// The range of component `m` is `[4, 9]`.
	/// The range of component `p` is `[1, 20]`.
	/// The range of component `m` is `[4, 100]`.
	/// The range of component `p` is `[1, 100]`.
	fn close_disapproved(m: u32, p: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `317 + m * (33 ±0) + p * (55 ±0)`
		//  Estimated: `3780 + m * (34 ±0) + p * (56 ±0)`
		// Minimum execution time: 26_006_000 picoseconds.
		Weight::from_parts(27_128_368, 3780)
			// Standard Error: 10_287
			.saturating_add(Weight::from_parts(72_229, 0).saturating_mul(m.into()))
			// Standard Error: 2_918
			.saturating_add(Weight::from_parts(284_805, 0).saturating_mul(p.into()))
			.saturating_add(T::DbWeight::get().reads(4_u64))
			.saturating_add(T::DbWeight::get().writes(3_u64))
			.saturating_add(Weight::from_parts(0, 34).saturating_mul(m.into()))
			.saturating_add(Weight::from_parts(0, 56).saturating_mul(p.into()))
	}
	/// Storage: `TreasuryCouncilCollective::Voting` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Members` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Prime` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::ProposalOf` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0)
	/// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Proposals` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// The range of component `b` is `[2, 1024]`.
	/// The range of component `m` is `[4, 9]`.
	/// The range of component `p` is `[1, 20]`.
	/// The range of component `b` is `[2, 1024]`.
	/// The range of component `m` is `[4, 100]`.
	/// The range of component `p` is `[1, 100]`.
	fn close_approved(b: u32, m: u32, p: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `274 + b * (1 ±0) + m * (40 ±0) + p * (78 ±0)`
		//  Estimated: `3877 + b * (1 ±0) + m * (30 ±1) + p * (74 ±0)`
		// Minimum execution time: 38_231_000 picoseconds.
		Weight::from_parts(40_617_253, 3877)
			// Standard Error: 105
			.saturating_add(Weight::from_parts(2_738, 0).saturating_mul(b.into()))
			// Standard Error: 5_483
			.saturating_add(Weight::from_parts(503_678, 0).saturating_mul(p.into()))
			.saturating_add(T::DbWeight::get().reads(6_u64))
			.saturating_add(T::DbWeight::get().writes(3_u64))
			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
			.saturating_add(Weight::from_parts(0, 30).saturating_mul(m.into()))
			.saturating_add(Weight::from_parts(0, 74).saturating_mul(p.into()))
	}
	/// Storage: `TreasuryCouncilCollective::Proposals` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Voting` (r:0 w:1)
	/// Proof: `TreasuryCouncilCollective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::ProposalOf` (r:0 w:1)
	/// Proof: `TreasuryCouncilCollective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// The range of component `p` is `[1, 20]`.
	/// The range of component `p` is `[1, 100]`.
	fn disapprove_proposal(p: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `326 + p * (32 ±0)`
		//  Estimated: `1811 + p * (32 ±0)`
		// Minimum execution time: 13_465_000 picoseconds.
		Weight::from_parts(14_025_092, 1811)
			// Standard Error: 1_675
			.saturating_add(Weight::from_parts(212_883, 0).saturating_mul(p.into()))
			.saturating_add(T::DbWeight::get().reads(1_u64))
			.saturating_add(T::DbWeight::get().writes(3_u64))
			.saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into()))
	}
	/// Storage: `TreasuryCouncilCollective::ProposalOf` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::CostOf` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::CostOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Proposals` (r:1 w:1)
	/// Proof: `TreasuryCouncilCollective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::Voting` (r:0 w:1)
	/// Proof: `TreasuryCouncilCollective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// The range of component `d` is `[0, 1]`.
	/// The range of component `p` is `[1, 20]`.
	/// The range of component `d` is `[0, 1]`.
	/// The range of component `p` is `[1, 100]`.
	fn kill(d: u32, p: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `1380 + p * (55 ±0)`
		//  Estimated: `4847 + d * (5 ±1) + p * (55 ±0)`
		// Minimum execution time: 21_658_000 picoseconds.
		Weight::from_parts(23_374_985, 4847)
			// Standard Error: 2_847
			.saturating_add(Weight::from_parts(329_361, 0).saturating_mul(p.into()))
			.saturating_add(T::DbWeight::get().reads(3_u64))
			.saturating_add(T::DbWeight::get().writes(3_u64))
			.saturating_add(Weight::from_parts(0, 5).saturating_mul(d.into()))
			.saturating_add(Weight::from_parts(0, 55).saturating_mul(p.into()))
	}
	/// Storage: `TreasuryCouncilCollective::ProposalOf` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
	/// Storage: `TreasuryCouncilCollective::CostOf` (r:1 w:0)
	/// Proof: `TreasuryCouncilCollective::CostOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
	fn release_proposal_cost() -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `813`
		//  Estimated: `4278`
		// Minimum execution time: 13_079_000 picoseconds.
		Weight::from_parts(13_900_000, 4278)
			.saturating_add(T::DbWeight::get().reads(2_u64))
	}
}
